//
//  FYMainTbaBar.swift
//  dugeweibo
//
//  Created by pelesys on 16/8/4.
//  Copyright © 2016年 杜方宜. All rights reserved.
//

import UIKit
// MARK: - 外部访问属性 & 重要变化属性

// MARK: - 外部访问方法

// MARK: - 监听方法

// MARK: - 内部属性 & 懒加载控件

// MARK: - 设置界面
class FYMainTbaBar: UITabBar {
    //默认的构造方法
    override init(frame: CGRect) {
        super.init(frame: frame)
        backgroundColor = UIColor(white: 0.99, alpha: 1)
        setupUI()
    }
    //如果重写init(frmae:)系统会默认为这个控件是通过代码创建
    //只有默认报错的语句
    //如果有调用者通过sb/xib创建对象,这个时候程序就崩溃
    //fatalError("init(coder:) has not been implemented")
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupUI()
    }
    //MARK: 添加撰写按钮
    private func setupUI(){
        //添加撰写按钮
        addSubview(composeBtn)
        
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        //手动 修改所有 "按钮"的位置
        //遍历所有的子视图
        let w = self.bounds.width / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        
        //定义递增变量
        var index:CGFloat = 0
        for subView in subviews {
            //!强制解包
            if subView.isMember(of: NSClassFromString("UITabBarButton")!) {
                //修改frame  /* Offset `rect' by `(dx, dy)'. */
                subView.frame = rect.offsetBy(dx: index * w, dy: 0);
                //                if index == 1 {
                //                    index++
                //                }
                //                index++
                //三目
                index += index == 1 ? 2:1
                
            }
        }
        
        //设置撰写按钮的位置
        composeBtn.frame = rect.offsetBy(dx: w * 2, dy: 0)
        bringSubviewToFront(composeBtn)
        
    }
    //MARK:懒加载 创建撰写按钮
    lazy var composeBtn:UIButton = {
        //UIButton() 自定义样式的按钮
        let btn = UIButton()
        //设置按钮
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button"), for: .normal)
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button_highlighted"), for: .highlighted)
        btn.setImage(UIImage(named:"tabbar_compose_icon_add"), for: .normal)
        btn.setImage(UIImage(named:"tabbar_compose_icon_add_highlighted"), for: .highlighted)
        btn.sizeToFit()
        return btn
    }()
    
}

